/**
 *   字典格式化 
 */

/**
 *  一.  
 * @Description 调用方式  $.dictUtil.format(dictArray, [key,value]);
 * 
 * @return  格式化后返回格式    {1:"是",0:"否"}
 * 
 * @param dictArray 必填    被格式化的数组  [{"key":1,"value":"是","key":0,value:"否"}]
 * 
 * @param key       非必填  默认值 key
 * 
 * @param value     非必填  默认值 value
 * */


/** 
 * 二 
 * @Description 调用方式  $.dictUtil.load(dictCode);
 * 
 * @return  格式化后返回格式    [{key:"",value:"" .....},......] 即 ：List<BaseDictionaryDetail> 对象
 * 
 * @param dictCode  必填    字典编码 
 * */

/** 
 * 三 
 * @Description 调用方式  $.dictUtil.loadFormat(dictCode, [key,value]);
 * 
 * @Description 参考一、二 。基于一 、二的调用
 * 
 * */
	
(function($, window){ 
	$.dictionaryUtil = 
	          {  
			   property :  { 
					       sourceCode  : "dictCode",
					       sourceKey   : "dictKey", 
						   sourceValue : "dictValue",
						   targetCode  : "code",
						   targetKey   : "key",
						   targetValue : "value",
						   url   : "/dictionary/queryByCodes"   
			   },
				formatArray : function (dictArray,property){  
						if(!$.isArray(dictArray)) return; 
						var property = $.extend({},this.property,property); 
						var dictionary ={}; 
						$.each(dictArray,function(i,e){  
							if(!e) return ;  
							var  dict = {};
							dict[property.targetKey]   =   e[property.sourceKey];
							dict[property.targetValue] =   e[property.sourceValue]; 
							if(dictionary[e[property.sourceCode]]){
							    dictionary[e[property.sourceCode]].push(dict);
							}else{
								dictionary[e[property.sourceCode]] = [dict];
							}  
						}) 
					   return dictionary;
						
				},
				 formatMap :  function(dictArray,property){
					 
						if(!$.isArray(dictArray)) return; 
						var property = $.extend({},this.property,property); 
						var dictionary ={}; 
						$.each(dictArray,function(i,e){  
							 
							if(!e) return ;   
							if(dictionary[e[property.sourceCode]]){
								dictionary[e[property.sourceCode]][e[property.sourceKey]]  =  e[property.sourceValue];
							}else{
								var dict = {};
								dict[e[property.sourceKey]] = e[property.sourceValue] ;
								dictionary[e[property.sourceCode]] = dict;
							}  
						}) 
					   return dictionary;
				}  
		  };  	
})(jQuery, window)